package com.example.springblog.Utils;

import org.springframework.util.DigestUtils;

import java.util.UUID;

public class MD5Utils {
    /**
     * md5加密过程，用户注册
     */
    public static String encrypt(String password){
        //生成一个随机盐值,将盐值内的横线替换成空
        String salt = UUID.randomUUID().toString().replace("-","");
        //进行MD5加密，盐值加上明文
        String finalPassword = DigestUtils.md5DigestAsHex((salt+password).getBytes());

        //最后返回就是盐值加上密文
        return salt+finalPassword;
    }

    /**
     * 进行验证
     * @param inputPassword
     * @param sqlPassword
     * @return
     */
    public static boolean verify(String inputPassword , String sqlPassword){
        //这里需要拿到盐值,盐值存储在sqlPassword内
        String salt = sqlPassword.substring(0,32);
        //拿到生成的密文
        String finalPassword = DigestUtils.md5DigestAsHex((salt+inputPassword).getBytes());

        //密文加上盐值
        String verifyPassword = salt + finalPassword;

        //最后进行验证这里的两个存储的密文是否是一致的
        return verifyPassword.equals(sqlPassword);
    }



}
